package com.reggie.utils;

import lombok.Data;

import java.util.HashMap;
import java.util.Map;

/**
 * 返回结果类，服务端响应数据最后都会封装成这个对象
 * @param <T>
 */
@Data
public class Result<T> {
    private Integer code;//编码：1成功，0或其他数字为失败
    private String msg;//错误信息
    private T data;//数据

    private Map map = new HashMap();//动态数据

    /**
     * 成功
     * @param object 数据内容
     * @param <T> 操作的数据类型
     * @return
     */
    public static <T> Result<T> success(T object) {
        Result<T> result = new Result<T>();
        result.data = object;
        result.code = 1;
        return result;
    }

    /**
     * 失败
     * @param msg 失败消息
     * @param <T> 操作的数据类型
     * @return
     */
    public static <T> Result<T> error(String msg) {
        Result result = new Result();
        result.msg = msg;
        result.code = 0;
        return result;
    }

    /**
     * 添加
     * @param key
     * @param value
     * @return
     */
    public Result<T> add(String key, Object value) {
        this.map.put(key, value);
        return this;
    }
}
